﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using ArmyBuilder_Controller;
using ArmyBuilder_Modele;

namespace ArmyBuilder_GUI
{
    public partial class FormArmyBuilder : Form
    {
        private FicheInfo oFiche;

        public FormArmyBuilder()
        {
            InitializeComponent();

            oFiche = new FicheInfo();
            Initialise();
        }
       
        void Initialise()
        {
            InitialiseListRace();
            InitialiseListCategorie();
        }

        void InitialiseListRace()
        {
            // ComboBox Race
            cbRace.Items.Clear();
            foreach( IRaceModele oRace in FicheInfo.ListRaceDisplayable() )
            {
                cbRace.Items.Add(oRace.Code);
            }
                       
        }

        void InitialiseListCategorie()
        {
            // ComboBox Catégorie Unité
            cbCategorie.Items.Clear();
            cbCategorie.Items.Add("Tous");
            foreach( ICategorieModele oCat in FicheInfo.ListCategorieDisplayable() )
            {
                cbCategorie.Items.Add(oCat.Code);
            }
        }

        void InitialiseListUnite()
        {
            // ComboBox Unité
            cbUnite.Items.Clear();
            foreach( IUniteModele oUnite in oFiche.ListUniteAffichable() )
            {
                cbUnite.Items.Add(oUnite.strNom);
            }
        }

        void InitialiseFigurine()
        {
            /*
            ListViewItem LVI = listvFigurine.Items.Add(oUnite.strNom) ;
            LVI.SubItems.Add( oUnite. );
            LVI.SubItems.Add( m_ObjFiche.listMoteurPuissance[i].Puissance.ToString() );
            LVI.Checked = m_ObjFiche.listMoteurPuissance[i].Checked;    
             */
        }

        void InitialiseUniteInfo()
        {
            IUniteModele oUnite = oFiche.oUniteSelected;
            if( oUnite != null )
            {
                tbNomUnite.Text         = oUnite.strNom;
                tbPointFigurine.Text    = oUnite.nNbPoint.ToString();
                tbTailleUnite.Text      = oUnite.nTaille.ToString();

                foreach( IFigurineModele oFig in oUnite.listFigurine)
                {
                    ListViewItem LVI =  listvFigurine.Items.Add(oFig.strNom) ;
                    LVI.SubItems.Add( oFig.nM.ToString() );
                    LVI.SubItems.Add( oFig.nCC.ToString() );
                    LVI.SubItems.Add( oFig.nCT.ToString() );
                    LVI.SubItems.Add( oFig.nF.ToString() );
                    LVI.SubItems.Add( oFig.nE.ToString() );
                    LVI.SubItems.Add( oFig.nPV.ToString() );
                    LVI.SubItems.Add( oFig.nI.ToString() );
                    LVI.SubItems.Add( oFig.nA.ToString() );
                    LVI.SubItems.Add( oFig.nCD.ToString() );

                    ITypeFigurineModele oType = oFig.oType;
                    if( oType != null )
                    {
                        LVI.SubItems.Add( oFig.oType.strNom );
                    }
                }
            }
        }

        void cbRace_SelectedIndexChanged(object sender, EventArgs e)
        {
            oFiche.OnChangeRace( cbRace.Text );
            InitialiseListUnite();
        }

        void cbCategorie_SelectedIndexChanged(object sender, EventArgs e)
        {
            oFiche.OnChangeCategorie( cbCategorie.Text );
            InitialiseListUnite();
        }

        private void cbUnite_SelectedIndexChanged(object sender, EventArgs e)
        {
            oFiche.OnChangeUnite(cbUnite.Text);
            InitialiseUniteInfo();
        }

        private void importerToolStripMenuItem_Click(object sender, EventArgs e)
        {
            oFiche.OnImportArmee();
            Initialise();
        }


    }    
}
